package cc.rengu.igas.route.core.realize.credit;

import cc.rengu.igas.route.facade.request.IntelligenceCreditRequest;
import cc.rengu.igas.route.facade.request.IntelligencePaymentRequest;
import cc.rengu.igas.route.facade.request.IntelligenceResultQueryRequest;
import cc.rengu.igas.route.facade.response.IntelligenceCreditResponse;
import cc.rengu.igas.route.facade.response.IntelligenceResultQueryResponse;

/**
 * 通道代付统一接口
 *
 * @author xionglz
 * @version 1.0
 * @date 2020-04-28
 */
public interface DstChannelCreditService {
    /**
     * 统一代付方法
     *
     * @param intelligenceCreditRequest 智能路由代付请求报文
     * @return java.lang.Boolean
     * @throws Exception 异常返回
     * @author xionglz
     * @date 2020-04-28
     **/
    IntelligenceCreditResponse credit(IntelligenceCreditRequest intelligenceCreditRequest) throws Exception;

    /**
     * 代付状态查询
     *
     * @param resultQueryRequest 查询请求
     * @return 查询结果
     */
    IntelligenceResultQueryResponse query(IntelligenceResultQueryRequest resultQueryRequest) throws Exception;

    /**
     * 获取对账key
     *
     * @param intelligencecreditRequest 代付请求
     * @return 返回对账key
     * @throws Exception 失败抛出异常
     */
    String getReconKey(IntelligenceCreditRequest intelligencecreditRequest) throws Exception;
}
